#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>
#include "binaryTree.h"

typedef struct BinaryTreeNode* queDataType;

typedef struct queueNode
{
	struct queueNode* next;
	queDataType data;
}QNode;

typedef struct Queue
{
	QNode* head;
	QNode* tail;
	int size;
}Queue;

void initQueue(Queue* pQueue);
QNode* createQueueNode(queDataType x);
void queueDestroy(Queue* pQueue);
void pushQueue(Queue* pQueue, queDataType x);
void popQueue(Queue* pQueue);
int sizeQueue(Queue* pQueue);
bool emptyQueue(Queue* pQueue);
queDataType queueFront(Queue* pQueue);
queDataType queueBack(Queue* pQueue);

